From: Stefano Facchini Date: Wed, 22 Feb 2012 17:18:15 +0000 (+0100) Subject: main: don't use a BindConstraint for uiGroup X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~6675 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8c94a5afb97d43731009f07e2c0cfef319cdf42c;p=gnome-shell.git main: don't use a BindConstraint for uiGroup A BindConstraint on the size of uiGroup forces full redraws of the scene. Instead, implement and use get_preferred_width and get_preferred_height. https://bugzilla.gnome.org/show_bug.cgi?id=670636 --- diff --git a/js/ui/main.js b/js/ui/main.js index ac9330c10..07a31744c 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -194,9 +194,16 @@ function start() { for (let i = 0; i < children.length; i++) children[i].allocate_preferred_size(flags); }); - let constraint = new Clutter.BindConstraint({ source: global.stage, - coordinate: Clutter.BindCoordinate.SIZE }); - uiGroup.add_constraint(constraint); + uiGroup.connect('get-preferred-width', + function(actor, forHeight, alloc) { + let width = global.stage.width; + [alloc.min_size, alloc.natural_size] = [width, width]; + }); + uiGroup.connect('get-preferred-height', + function(actor, forWidth, alloc) { + let height = global.stage.height; + [alloc.min_size, alloc.natural_size] = [height, height]; + }); global.window_group.reparent(uiGroup); global.overlay_group.reparent(uiGroup); global.stage.add_actor(uiGroup);